package Factory.Tip;

import Model.Core.Tip.Tip;
import Model.Core.Tip.TipMoment;
import Model.Core.Tip.TipType;
import java.util.ArrayList;
import java.util.List;

/**
 * Projeto de TCC: Editor de Diagramas de comunicação BlueJ
 * @author Jose
 */
public class TipsFactory {
    public static List<Tip> createObjectTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, "O objeto que você está criando está com o clique de ORIGEM em area inválida. Verifique se você não sobrepôs o clique de ORIGEM sobre alguma outra entidade."));
        tips.add(new Tip(TipType.Error, TipMoment.Target, "O objeto que você está criando está com o clique de DESTINO em area inválida. Verifique se você não sobrepôs o clique de DESTINO sobre alguma outra entidade."));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique em uma área em branco do painel."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique em outra área em branco do painel. Será criado o OBJETO neste espaço."));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Objeto Selecionado."));
        tips.add(new Tip(TipType.Action, TipMoment.Rename, "Renomeie o objeto na área abaixo. Coloque um nome válido: Objetos devem ter nomes únicos."));
        tips.add(new Tip(TipType.Action, TipMoment.Move, "Agora clique na área onde o objeto deve se mover."));
        return tips;
    }
    
    public static List<Tip> createLinkTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, "A ligação que você está criando não está vinculado a nenhuma entidade de ORIGEM válida.(Entidades de ORIGEM válidas são Ator e Objeto)"));
        tips.add(new Tip(TipType.Error, TipMoment.Target, "A ligação que você está criando não está vinculado a nenhuma entidade de DESTINO válida.(Entidade de DESTINO válida é somente Objeto)"));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique na entidada de ORIGEM da ligação."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique na entidade de DESTINO da ligação"));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Ligação Selecionada."));
        return tips;
    }
    
    public static List<Tip> createMessageTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, ""));
        tips.add(new Tip(TipType.Error, TipMoment.Target, ""));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique em uma LIGAÇÃO na qual a mensagem será vinculada."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique no OBJETO de destino da mensagem."));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Mensagem Selecionada."));
        tips.add(new Tip(TipType.Action, TipMoment.Rename, "Renomeie a mensagem da área abaixo."));
        return tips;
    }
    
    public static List<Tip> createActorTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, "Error 1"));
        tips.add(new Tip(TipType.Error, TipMoment.Target, "Error Target"));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique em uma área em branco do painel."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique em outra área em branco do painel. Será criado o ATOR neste espaço."));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Ator Selecionado."));
        tips.add(new Tip(TipType.Action, TipMoment.Rename, "Renomeie o nome do ator selecionado."));
        tips.add(new Tip(TipType.Action, TipMoment.Move, "Agora clique na área onde o ator deve se mover."));
        return tips;
    }
    
    public static List<Tip> createStateTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, "Error 1"));
        tips.add(new Tip(TipType.Error, TipMoment.Target, "Error Target"));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique em uma área em branco do painel."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique em outra área em branco do painel. Será criado o ESTADO neste espaço."));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Estado Selecionado."));
        tips.add(new Tip(TipType.Action, TipMoment.Rename, "Defina o novo nome do ESTADO selecionado."));
        tips.add(new Tip(TipType.Action, TipMoment.Move, "Agora clique na área para onde o ESTADO deve se mover."));
        return tips;
    }
    
    public static List<Tip> createTrasitionTips(){
        List<Tip> tips = new ArrayList<Tip>();
        tips.add(new Tip(TipType.Error, TipMoment.Source, "A transição que você está criando não está vinculado a nenhum estado de ORIGEM válido."));
        tips.add(new Tip(TipType.Error, TipMoment.Target, "A transição que você está criando não está vinculado a nenhum estado de DESTINO válido"));
        tips.add(new Tip(TipType.Hint, TipMoment.Source, "Clique na entidada de ORIGEM da transição."));
        tips.add(new Tip(TipType.Hint, TipMoment.Target, "Agora clique na entidade de DESTINO da transição"));
        tips.add(new Tip(TipType.Action, TipMoment.Selection, "Transição Selecionada."));
        tips.add(new Tip(TipType.Action, TipMoment.Rename, "Defina o novo nome do EVENTO que ativa a transição."));
        return tips;
    }

    public static List<Tip> createStartStateTips() {
        return new ArrayList<Tip>();
    }

    public static List<Tip> createFinishStateTips() {
        return new ArrayList<Tip>();
    }
    
}
